package 遍历器;

import 抽象语法树节点.抽象语法树;

import java.util.Stack;

// 遍历后给所有节点设置父节点
public class 父节点监听器 extends 抽象语法树基础监听器{
    
    private Stack<抽象语法树> 节点栈 = new Stack<>();

    @Override
    public void 进入抽象语法树(抽象语法树 节点) {
        if (节点栈.size() > 0) {
            节点.父节点 = 节点栈.peek();
        }

        节点栈.push(节点);
    }

    @Override
    public void 离开抽象语法树(抽象语法树 节点) {
        节点栈.pop();
    }
}
